var farmFactory=function(){"use strict";var e=function(){return(e=Object.assign||function(t){for(var e,n=1,a=arguments.length;nr[0]&&e[1]\n \n \n
\n '+(void 0===n?"":n)+"\n
\n \n \n",n=document.getElementById(s);n.innerHTML=e,a.elems={root:e=n,overlay:e.querySelector(".ff-overlay"),modal:e.querySelector(".ff-modal"),closeButton:e.querySelector(".ff-modal-close"),title:e.querySelector(".ff-modal-title"),content:e.querySelector(".ff-modal-content")},null!=t&&t.title&&(a.elems.title.innerText=t.title),a.elems.overlay.addEventListener("click",a.close),a.elems.modal.addEventListener("click",function(t){t.stopPropagation()}),a.elems.closeButton.addEventListener("click",a.close),a.opts.onOpen.bind(a)(t)},this.close=function(){a.elems.root.innerHTML=""},this.opts=t},x=new t({onOpen:function(t){t=(void 0===t?{}:t).message;this.elems.root.querySelector(".ff-modal-content").innerHTML=t||"Something went wrong"}}),a=(o.prototype.addHandler=function(t){var e=this;this.handlers.push(t.bind({unsubscribe:function(){e.removeHandler(t)}}))},o.prototype.removeHandler=function(t){t=this.handlers.indexOf(t);this.handlers.splice(t,1)},o.prototype.call=function(){for(var e=[],t=0;t"+a+" to "+e.networkName+" network."}),[2]);case 2:return a=t.sent(),s=a[0],i({account:s}),s?(console.log("account connected:",s),y.dispatch("account connected")):v(),[2]}})})}function m(t,e){return{farm:S(t,w,e.farmAddress),rewards:S(t,b,e.rewardsAddress),staking:S(t,g,e.stakingAddress)}}function p(t,e){return new window.BigNumber(t).times(new window.BigNumber(10).pow(e)).toString(10)}function f(t){if(!t)return t;if(/^\d+$/.test(t))return t;var e=Number(t).toFixed(5);return/0\.00000/.test(e)&&(e=Number(t).toFixed(8)),/0\.0000000/.test(e)?t:e}var d,l,y=new r,c=function(t){window.Web3?(t=new window.Web3(t),i({web3:t}),console.log("web3 initialized"),y.dispatch("web3 init")):x.open({message:"Web3 is required"})},v=function(){return k(void 0,void 0,void 0,function(){return T(this,function(t){switch(t.label){case 0:return(console.log("Killing the wallet connection",l),l.close)?[4,l.close()]:[3,2];case 1:t.sent(),l=null,t.label=2;case 2:return[4,d.clearCachedProvider()];case 3:return t.sent(),i({account:null}),console.log("finalize disconnect"),[2]}})})},h=function(){var t=M().opts;d=new window.Web3Modal.default({cacheProvider:!0,providerOptions:(null==(t=t.wallet)?void 0:t.providerOptions)||{},disableInjectedProvider:!1});try{localStorage.removeItem("walletconnect")}catch(t){}(window.web3ModalInstance=d).on("connect",function(t){return k(void 0,void 0,void 0,function(){return T(this,function(t){return console.log("web3modal initialized"),[2]})})}),d.on("disconnect",function(){return k(void 0,void 0,void 0,function(){return T(this,function(t){return console.log("web3modal disconnected"),[2]})})}),d.on("error",function(t){console.log("web3modal error:",t)}),d.cachedProvider},L=function(){return k(void 0,void 0,void 0,function(){var e;return T(this,function(t){switch(t.label){case 0:return t.trys.push([0,3,,4]),[4,d.connect()];case 1:return e=t.sent(),c(e),e.on("accountsChanged",function(t){console.log("provider account changed",t),u()}),e.on("chainChanged",function(t){console.log("provider chain changed",t),u()}),e.on("networkChanged",function(t){console.log("provider network changed",t),u()}),[4,u()];case 2:return t.sent(),[3,4];case 3:return e=t.sent(),console.error(e),[3,4];case 4:return[2]}})})},w=[{inputs:[{internalType:"address",name:"_rewardsToken",type:"address"},{internalType:"address",name:"_stakingToken",type:"address"},{internalType:"uint256",name:"_rewardsDuration",type:"uint256"},{internalType:"uint256",name:"_stakingTokensDecimal",type:"uint256"}],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"account",type:"address"}],name:"Paused",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"token",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"Recovered",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"reward",type:"uint256"}],name:"RewardAdded",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"user",type:"address"},{indexed:!1,internalType:"uint256",name:"reward",type:"uint256"}],name:"RewardPaid",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"newDuration",type:"uint256"}],name:"RewardsDurationUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"user",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"Staked",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"account",type:"address"}],name:"Unpaused",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"user",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"Withdrawn",type:"event"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"balanceOf",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"earned",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"exit",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"getReward",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"getRewardForDuration",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"lastTimeRewardApplicable",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"lastUpdateTime",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"a",type:"uint256"},{internalType:"uint256",name:"b",type:"uint256"}],name:"min",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"uint256",name:"reward",type:"uint256"}],name:"notifyRewardAmount",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"paused",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"periodFinish",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"n",type:"uint256"},{internalType:"uint256",name:"e",type:"uint256"}],name:"pow",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"address",name:"tokenAddress",type:"address"},{internalType:"uint256",name:"tokenAmount",type:"uint256"}],name:"recoverERC20",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"rewardPerToken",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"rewardPerTokenStored",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"rewardRate",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"rewards",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"rewardsDuration",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"rewardsToken",outputs:[{internalType:"contract IERC20",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_rewardsDuration",type:"uint256"}],name:"setRewardsDuration",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"amount",type:"uint256"}],name:"stake",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"stakingToken",outputs:[{internalType:"contract IERC20",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"stakingTokensDecimalRate",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"totalSupply",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"userRewardPerTokenPaid",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"amount",type:"uint256"}],name:"withdraw",outputs:[],stateMutability:"nonpayable",type:"function"}],b=[{constant:!0,inputs:[],name:"name",outputs:[{name:"",type:"string"}],payable:!1,stateMutability:"view",type:"function"},{constant:!1,inputs:[{name:"spender",type:"address"},{name:"value",type:"uint256"}],name:"approve",outputs:[{name:"",type:"bool"}],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!0,inputs:[],name:"totalSupply",outputs:[{name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},{constant:!1,inputs:[{name:"from",type:"address"},{name:"to",type:"address"},{name:"value",type:"uint256"}],name:"transferFrom",outputs:[{name:"",type:"bool"}],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!1,inputs:[{name:"_spender",type:"address"},{name:"_value",type:"uint256"},{name:"_extraData",type:"string"}],name:"approveAndCall",outputs:[{name:"success",type:"bool"}],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!0,inputs:[],name:"decimals",outputs:[{name:"",type:"uint8"}],payable:!1,stateMutability:"view",type:"function"},{constant:!1,inputs:[{name:"spender",type:"address"},{name:"addedValue",type:"uint256"}],name:"increaseAllowance",outputs:[{name:"",type:"bool"}],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!1,inputs:[{name:"to",type:"address"},{name:"value",type:"uint256"}],name:"mint",outputs:[{name:"",type:"bool"}],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!1,inputs:[{name:"value",type:"uint256"}],name:"burn",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!0,inputs:[{name:"from",type:"address"}],name:"getAvailableBalance",outputs:[{name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},{constant:!0,inputs:[],name:"tokensMinted",outputs:[{name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},{constant:!0,inputs:[{name:"owner",type:"address"}],name:"balanceOf",outputs:[{name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},{constant:!1,inputs:[{name:"from",type:"address"},{name:"value",type:"uint256"}],name:"burnFrom",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!0,inputs:[],name:"symbol",outputs:[{name:"",type:"string"}],payable:!1,stateMutability:"view",type:"function"},{constant:!1,inputs:[{name:"account",type:"address"}],name:"addMinter",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!1,inputs:[],name:"renounceMinter",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!1,inputs:[{name:"spender",type:"address"},{name:"subtractedValue",type:"uint256"}],name:"decreaseAllowance",outputs:[{name:"",type:"bool"}],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!1,inputs:[{name:"to",type:"address"},{name:"value",type:"uint256"}],name:"transfer",outputs:[{name:"",type:"bool"}],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!0,inputs:[{name:"account",type:"address"}],name:"isMinter",outputs:[{name:"",type:"bool"}],payable:!1,stateMutability:"view",type:"function"},{constant:!0,inputs:[{name:"owner",type:"address"}],name:"freezeFor",outputs:[{name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},{constant:!0,inputs:[{name:"owner",type:"address"}],name:"freezeOf",outputs:[{name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},{constant:!1,inputs:[{name:"_to",type:"address"},{name:"_value",type:"uint256"},{name:"_unfreezeTimestamp",type:"uint256"},{name:"_subsequentUnlock",type:"bool"}],name:"mintWithFreeze",outputs:[{name:"",type:"bool"}],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!0,inputs:[],name:"maxSupply",outputs:[{name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},{constant:!0,inputs:[{name:"owner",type:"address"},{name:"spender",type:"address"}],name:"allowance",outputs:[{name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},{inputs:[],payable:!1,stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!0,name:"account",type:"address"}],name:"MinterAdded",type:"event"},{anonymous:!1,inputs:[{indexed:!0,name:"account",type:"address"}],name:"MinterRemoved",type:"event"},{anonymous:!1,inputs:[{indexed:!0,name:"from",type:"address"},{indexed:!0,name:"to",type:"address"},{indexed:!1,name:"value",type:"uint256"}],name:"Transfer",type:"event"},{anonymous:!1,inputs:[{indexed:!0,name:"owner",type:"address"},{indexed:!0,name:"spender",type:"address"},{indexed:!1,name:"value",type:"uint256"}],name:"Approval",type:"event"}],g=b,S=function(t,e,n){return new t.eth.Contract(e,n)},C=new t({title:"Deposit",content:'\n
\n
Available to deposit:
\n \n
\n
\n \n
\n ',onOpen:function(t){var e=this,n=t.contracts,s=t.stakingDecimals,a=t.stakingTokenSymbol,t=M(),i=t.opts.networkName,o=t.account,r=!1,u=this.elems.root.querySelector(".ff-text-field-label"),d=this.elems.root.querySelector(".ff-text-field"),l=this.elems.root.querySelector(".ff-modal-buttons"),c=this.elems.root.querySelector(".ff-button");n.staking.methods.balanceOf(o).call().then(function(t){t=f(Number(t)/Math.pow(10,s));u.innerHTML="Available to deposit: "+t+" "+a+""}),c.addEventListener("click",function(){return k(e,void 0,void 0,function(){var e,a=this;return T(this,function(t){return r||0<(e=Number(d.value))&&(r=!0,c.disabled=!0,c.innerHTML='
',e=p(e,s),n.farm.methods.stake(e).send({from:o}).on("transactionHash",function(t){var e=document.createElement("div"),n=(e.classList.add("ff-transaction-link"),"https://"+i.toLowerCase()+".etherscan.io/tx/"+t);"fantom"===i.toLowerCase()&&(n="https://ftmscan.com/tx/"+t),"harmony"===i.toLowerCase()&&(n="https://explorer.harmony.one/tx/"+t),"avax"===i.toLowerCase()&&(n="https://snowtrace.io/tx/"+t),"moonriver"===i.toLowerCase()&&(n="https://moonriver.moonscan.io/tx/"+t),"xdai"===i.toLowerCase()&&(n="https://blockscout.com/xdai/mainnet/tx/"+t),"aurora"===i.toLowerCase()&&(n="https://aurorascan.dev/tx/"+t),"cronos"===i.toLowerCase()&&(n="https://cronoscan.com/tx/"+t),e.innerHTML='Pending transaction: '+t+"",a.elems.content.insertBefore(e,l)}).on("error",function(t){console.error(t),x.open({title:"Transaction failed",message:"Something went wrong. Try again later."})}).then(function(){y.dispatch("deposit success"),x.open({title:"Transaction successful",message:"Tokens were credited to the contract."})})),[2]})})})}}),A=new t({title:"Withdraw",content:'\n
\n
Available to withdraw:
\n \n
\n
\n \n
\n ',onOpen:function(t){var e=this,n=t.contracts,s=t.stakingDecimals,a=t.stakingTokenSymbol,t=M(),i=t.opts.networkName,o=t.account,r=!1,u=this.elems.root.querySelector(".ff-text-field-label"),d=this.elems.root.querySelector(".ff-text-field"),l=this.elems.root.querySelector(".ff-modal-buttons"),c=this.elems.root.querySelector(".ff-button");n.farm.methods.balanceOf(o).call().then(function(t){t=f(Number(t)/Math.pow(10,s));u.innerHTML="Available to withdraw: "+t+" "+a+""}),c.addEventListener("click",function(){return k(e,void 0,void 0,function(){var e,a=this;return T(this,function(t){return r||0<(e=Number(d.value))&&(r=!0,c.disabled=!0,c.innerHTML='
',e=p(e,s),n.farm.methods.withdraw(e).send({from:o}).on("transactionHash",function(t){var e=document.createElement("div"),n=(e.classList.add("ff-transaction-link"),"https://"+i.toLowerCase()+".etherscan.io/tx/"+t);"xdai"===i.toLowerCase()&&(n="https://blockscout.com/xdai/mainnet/tx/"+t),"fantom"===i.toLowerCase()&&(n="https://ftmscan.com/tx/"+t),"harmony"===i.toLowerCase()&&(n="https://explorer.harmony.one/tx/"+t),"avax"===i.toLowerCase()&&(n="https://snowtrace.io/tx/"+t),"moonriver"===i.toLowerCase()&&(n="https://moonriver.moonscan.io/tx/"+t),"aurora"===i.toLowerCase()&&(n="https://aurorascan.dev/tx/"+t),"cronos"===i.toLowerCase()&&(n="https://cronoscan.com/tx/"+t),e.innerHTML='Pending transaction: '+t+"",a.elems.content.insertBefore(e,l)}).on("error",function(t){console.error(t),x.open({title:"Transaction failed",message:"Something went wrong. Try again later."})}).then(function(){y.dispatch("withdraw success"),x.open({title:"Transaction successful",message:"Tokens have been withdrawn to your address."})})),[2]})})})}}),H=function(t,e){var n;return n=t?"function"==typeof t?t(e):t:n};function q(t){var i=this,e=(this.createButton=function(e,n){var a=e.innerHTML,s=!1;e.addEventListener("click",function(){return k(i,void 0,void 0,function(){return T(this,function(t){switch(t.label){case 0:return s?[2]:(s=!0,e.disabled=!0,e.innerHTML='
',[4,n()]);case 1:return t.sent(),e.disabled=!1,e.innerHTML=a,[2]}})})})},this.handleApproved=function(){i.elems.approveButton.classList.add("ff-hidden"),i.elems.earnSection.classList.remove("ff-hidden"),i.elems.stakeSection.classList.remove("ff-hidden"),i.elems.depositButton.addEventListener("click",function(){C.open({contracts:i.contracts,stakingDecimals:i.state.stakingDecimals,stakingTokenSymbol:i.state.stakingTokenSymbol})}),i.elems.withdrawButton.addEventListener("click",function(){A.open({contracts:i.contracts,stakingDecimals:i.state.stakingDecimals,stakingTokenSymbol:i.state.stakingTokenSymbol})}),i.createButton(i.elems.harvestButton,function(){return k(i,void 0,void 0,function(){var n,e;return T(this,function(t){return e=M(),n=e.opts.networkName,e=e.account,[2,this.contracts.farm.methods.getReward().send({from:e}).on("transactionHash",function(t){var e="https://"+n.toLowerCase()+".etherscan.io/tx/"+t;"xdai"===n.toLowerCase()&&(e="https://blockscout.com/xdai/mainnet/tx/"+t),"fantom"===n.toLowerCase()&&(e="https://ftmscan.com/tx/"+t),"harmony"===n.toLowerCase()&&(e="https://explorer.harmony.one/tx/"+t),"avax"===n.toLowerCase()&&(e="https://snowtrace.io/tx/"+t),"moonriver"===n.toLowerCase()&&(e="https://moonriver.moonscan.io/tx/"+t),"aurora"===n.toLowerCase()&&(e="https://aurorascan.dev/tx/"+t),"cronos"===n.toLowerCase()&&(e="https://cronoscan.com/tx/"+t),console.log("Harvest trx:",e)}).on("error",function(t){console.error(t),x.open({title:"Transaction failed",message:"Something went wrong. Try again later."})}).then(function(){y.dispatch("harvest success"),x.open({title:"Transaction successful",message:"Tokens have been transferred to your address."})})]})})})},this.initCommon=function(){return k(i,void 0,void 0,function(){var s,i,o,r,u,d,l,c,p,f=this;return T(this,function(t){switch(t.label){case 0:return l=this.opts,r=l.farmAddress,d=l.rewardsAddress,l=l.stakingAddress,i=M().opts.networkName,i={mainnet:"https://mainnet.infura.io/v3/5ffc47f65c4042ce847ef66a3fa70d4c",ropsten:"https://ropsten.infura.io/v3/5ffc47f65c4042ce847ef66a3fa70d4c",kovan:"https://kovan.infura.io/v3/5ffc47f65c4042ce847ef66a3fa70d4c",matic:"https://polygon-rpc.com/",mumbai:"https://rpc-mumbai.maticvigil.com",bsc:"https://bsc-dataseed1.binance.org:443",bsc_test:"https://data-seed-prebsc-1-s1.binance.org:8545",xdai:"https://rpc.xdaichain.com",aurora:"https://mainnet.aurora.dev",fantom:"https://rpc.ftm.tools/",harmony:"https://api.harmony.one",avax:"https://api.avax.network/ext/bc/C/rpc",moonriver:"https://rpc.moonriver.moonbeam.network",cronos:"https://evm.cronos.org"}[i.toLowerCase()],i=new window.Web3(window.Web3.givenProvider||window.ethereum||i),s=this,[4,m(i,{farmAddress:r,rewardsAddress:d,stakingAddress:l})];case 1:return s.readContracts=t.sent(),[4,Promise.all([this.readContracts.staking.methods.symbol().call(),this.readContracts.staking.methods.decimals().call(),this.readContracts.rewards.methods.symbol().call(),this.readContracts.rewards.methods.decimals().call()])];case 2:return i=t.sent(),o=i[0],r=i[1],u=i[2],d=i[3],this.state.stakingTokenSymbol=o,this.state.rewardsTokenSymbol=u,this.state.stakingDecimals=r,this.state.rewardsDecimals=d,this.elems.rewardsTokenSymbol.innerHTML=u,this.elems.stakingTokenSymbol.innerHTML=o,"function"==typeof this.opts.title?this.elems.title.innerHTML=this.opts.title(o,u):"string"==typeof this.opts.title?this.elems.title.innerHTML=this.opts.title:this.elems.title.innerHTML=u+"-"+o,e=this.opts,a=(n={stakingTokenSymbol:o,rewardsTokenSymbol:u}).stakingTokenSymbol,n=n.rewardsTokenSymbol,a=H(e.stakingTokenIcon,a),e=H(e.rewardsTokenIcon,n),l=a||e?{staking:a,rewards:e}:null,this.elems.tokenIcons.innerHTML=l?"\n "+(l.rewards?'':"")+"\n "+(l.staking?'':"")+"\n ":"",this.elems.apyValue&&("function"==typeof this.opts.apy?this.opts.apy().then(function(t){f.elems.apyValue.innerHTML=t+"%"}):this.elems.apyValue.innerHTML=this.opts.apy+"%"),this.elems.aprValue&&("function"==typeof this.opts.apr?this.opts.apr().then(function(t){f.elems.aprValue.innerHTML=""+t}):this.elems.aprValue.innerHTML=""+this.opts.apr),this.opts.detailsLink?(c=void 0,c="function"==typeof this.opts.detailsLink?this.opts.detailsLink(o,u):this.opts.detailsLink,(p=document.createElement("a")).classList.add("ff-widget-details"),p.innerText="Details",p.href=c,this.elems.root.appendChild(p)):this.opts.detailsClick&&((p=document.createElement("div")).classList.add("ff-widget-details"),p.innerText="Details",p.onclick=function(){f.opts.detailsClick(o,u)},this.elems.root.appendChild(p)),this.elems.depositTokenName.innerHTML=o,this.elems.earnTokenName.innerHTML=u,this.initTimer(),[2]}var e,n,a})})},this.init=function(){return k(i,void 0,void 0,function(){var e,n,a,s;return T(this,function(t){return a=this.opts,e=a.farmAddress,n=a.rewardsAddress,a=a.stakingAddress,s=M().web3,this.elems.unlockButton.classList.add("ff-hidden"),this.contracts=m(s,{farmAddress:e,rewardsAddress:n,stakingAddress:a}),this.updateValues(),y.subscribe("harvest success",this.updateValues),y.subscribe("deposit success",this.updateValues),y.subscribe("withdraw success",this.updateValues),[2]})})},this.initTimer=function(){return k(i,void 0,void 0,function(){var e,n,s,i=this;return T(this,function(t){switch(t.label){case 0:return t.trys.push([0,2,,3]),[4,this.readContracts.farm.methods.periodFinish().call()];case 1:return e=t.sent(),[3,3];case 2:return n=t.sent(),console.error(n),[2];case 3:return 0<(s=Number(e.toString()))-Date.now()/1e3?setInterval(function(){var t=Math.floor((1e3*s-Date.now())/1e3),e=Math.floor(t/86400),n=(t-=86400*e,Math.floor(t/3600)%24),a=(t-=3600*n,Math.floor(t/60)%60),t=(t-=60*a)%60;i.elems.timer.innerHTML=(e<10?"0"+e:e)+":"+(n<10?"0"+n:n)+":"+(a<10?"0"+a:a)+":"+(t<10?"0"+t:t)},1e3):this.elems.timer.innerHTML="Farming not started yet",[2]}})})},this.updateValues=function(){return k(i,void 0,void 0,function(){var e,n,a,s,i;return T(this,function(t){switch(t.label){case 0:return e=M().account,[4,Promise.all([this.readContracts.farm.methods.balanceOf(e).call(),this.readContracts.farm.methods.earned(e).call(),this.readContracts.staking.methods.allowance(e,this.opts.farmAddress).call()])];case 1:return e=t.sent(),n=e[0],a=e[1],i=e[2],0===Number(i)?this.elems.approveButton.classList.remove("ff-hidden"):this.handleApproved(),i=this.state,s=i.stakingDecimals,i=i.rewardsDecimals,this.elems.earnedAmount.innerText=f(a/Math.pow(10,i)),this.elems.stakedAmount.innerText=f(n/Math.pow(10,s)),0\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n \n
\n
--:--:--:--
\n
\n \n
\n '+(n?'\n
\n
'+(void 0===a?"APY":a)+':
\n
\n \n
\n
\n ':"")+"\n "+(s?'\n
\n
'+(void 0===o?"APR":o)+':
\n
\n \n
\n
\n ':"")+' \n
\n
Deposit:
\n
\n \n
\n
\n
\n
Earn:
\n
\n \n
\n
\n
\n
\n
\n \n \n Earned\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n
\n \n \n Staked\n
\n
\n
\n \n
\n
\n \n \n
\n
\n
\n \n'),e.querySelector(".ff-widget-token-icons")),a=e.querySelector(".ff-widget-title"),s=e.querySelector(".ff-widget-timer"),o=e.querySelector(".ff-rewards-token-name"),r=e.querySelector(".ff-staking-token-name"),u=e.querySelector(".ff-widget-apy"),d=e.querySelector(".ff-widget-apr"),l=e.querySelector(".ff-widget-deposit-token-name"),c=e.querySelector(".ff-widget-earn-token-name"),p=e.querySelector(".ff-widget-earn-section"),f=e.querySelector(".ff-widget-stake-section"),m=e.querySelector(".ff-widget-earned-amount"),y=e.querySelector(".ff-widget-staked-amount"),v=e.querySelector(".ff-widget-unlock-button"),h=e.querySelector(".ff-widget-approve-button"),w=e.querySelector(".ff-widget-deposit-button"),b=e.querySelector(".ff-widget-withdraw-button"),g=e.querySelector(".ff-widget-harvest-button");this.elems={root:e,tokenIcons:n,title:a,timer:s,rewardsTokenSymbol:o,stakingTokenSymbol:r,apyValue:u,aprValue:d,depositTokenName:l,earnTokenName:c,earnSection:p,stakeSection:f,earnedAmount:m,stakedAmount:y,unlockButton:v,approveButton:h,depositButton:w,withdrawButton:b,harvestButton:g},v.addEventListener("click",function(){L()}),this.createButton(h,function(){return k(t,void 0,void 0,function(){var e,n,a,s;return T(this,function(t){switch(t.label){case 0:e=M(),a=e.web3,e=e.account,n=i.farmAddress,a=a.utils.toBN("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),t.label=1;case 1:return t.trys.push([1,3,,4]),[4,this.contracts.staking.methods.approve(n,a).send({from:e})];case 2:return t.sent(),this.handleApproved(),[3,4];case 3:return s=t.sent(),console.error(s),x.open(s.message),[3,4];case 4:return[2]}})})})};return{init:function(n){return k(void 0,void 0,void 0,function(){return T(this,function(t){if(!n)throw new Error("options required");if("https:"!==location.protocol)throw new Error("FarmFactory requires HTTPS connection");var e;return i({opts:n}),(e=document.createElement("div")).setAttribute("id",s),document.body.appendChild(e),h(),[2]})})},Widget:q}}();